package com.crm.service.sys;

import com.crm.model.entity.sys.ImportFailureLog;
import com.crm.model.qo.sys.ImportFailureLogQO;
import com.crm.model.vo.sys.ImportFailureLogVO;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/5/25 8:41
 */
public interface ImportFailureLogDbService {

    /**
     * 插入导入失败日志
     * @Author pym
     * @Date  2021/5/25 8:43
     * @param importFailureLog 导入失败日志
     * @return {@link {java.lang.Boolean}}
     */
    Boolean insertImportFailureLog(ImportFailureLog importFailureLog);

    /**
     * 客户冲突数据列表
     * @Author pym
     * @Date  2021/5/28 10:59
     * @param importFailureLogQO -查询条件
     * @param accountId -账号ID
     * @return {@link {java.util.List<com.crm.model.vo.sys.ImportFailureLogVO>}}
     */
    List<ImportFailureLogVO> selectCustomerConflictList(ImportFailureLogQO importFailureLogQO, String accountId);

    /**
     * 客户导入失败数据列表
     * @Author pym
     * @Date  2021/5/28 13:59
     * @param importFailureLogQO -查询条件
     * @param accountId -账号ID
     * @return {@link {java.util.List<com.crm.model.vo.sys.ImportFailureLogVO>}}
     */
    List<ImportFailureLogVO> selectImportFailedDataList(ImportFailureLogQO importFailureLogQO, String accountId);

    /**
     * 订单导入失败数据列表
     * @Author pym
     * @Date  2021/6/8 15:06
     * @param importFailureLogQO
     * @param accountId
     * @return {@link {java.util.List<com.crm.model.vo.sys.ImportFailureLogVO>}}
     */
    List<ImportFailureLogVO> selectOrderImportFailedDataList(ImportFailureLogQO importFailureLogQO, String accountId);

    /**
     * 查询联系人日志查重
     * @param content 存入的错误信息
     * @param type 导入什么业务
     * @param companyId 公司id
     * @param accountId 所有人id
     * @return
     */
    List<ImportFailureLog> selectImportFailureLog(String content, String type, String companyId, String accountId);

    /**
     * 查询日志记录
     * @param importName
     * @param operateType
     * @param companyId
     * @param accountId
     * @return
     */
    List<ImportFailureLogVO> selectImportFailureLogByNameAndType(String importName, Integer operateType, String companyId, String accountId);

    /**
     * 通过业务类型（operateType）、导入名称（importName）、公司id（companyId）、所有人id（accountId）、导入的数据（importData）查询导入错误日志信息
     * @param operateType
     * @param ImportName
     * @param companyId
     * @param accountId
     * @param importDate
     * @return
     */
    Boolean selectImportFailureLogByExample(String operateType,String ImportName,String companyId,String accountId,String importDate);
}
